/**
 * 
 */
package edu.villanova.csc.cloud.todo.dao;

	import java.util.List;

	import javax.persistence.EntityManager;
import javax.persistence.Query;

import edu.villanova.csc.cloud.todo.model.ToDo;



	

	public enum Dao {
	  INSTANCE;

	  public List<ToDo> listToDos() {
	    EntityManager em = EMFService.get().createEntityManager();
	    // Read the existing entries
	    Query q = em.createQuery("select m from ToDo m");
	    List<ToDo> ToDos = q.getResultList();
	    return ToDos;
	  }

	  public void add(String userId, String summery, String description,
	      String url) {
	    synchronized (this) {
	      EntityManager em = EMFService.get().createEntityManager();
	      ToDo ToDo = new ToDo(userId, summery, description, url);
	      em.persist(ToDo);
	      em.close();
	    }
	  }

	  public List<ToDo> getToDos(String userId) {
	    EntityManager em = EMFService.get().createEntityManager();
	    Query q = em
	        .createQuery("select t from ToDo t where t.author = :userId");
	    q.setParameter("userId", userId);
	    List<ToDo> ToDos = q.getResultList();
	    return ToDos;
	  }

	  public void remove(long id) {
	    EntityManager em = EMFService.get().createEntityManager();
	    try {
	      ToDo ToDo = em.find(ToDo.class, id);
	      em.remove(ToDo);
	    } finally {
	      em.close();
	    }
	  }
}
